<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="utf-8"/>

<xsl:template match="/">
	<xsl:text>var </xsl:text><xsl:value-of select="/workbook/sheet[@name='object_name']/row[1]/cell[1]" />
	<xsl:text> = EditGridInputMethod.extend({</xsl:text>
	<xsl:apply-templates />
	<xsl:text>
});

DownloadManager.ServerCallbackName(&apos;</xsl:text>
	<xsl:value-of select="/workbook/sheet[@name='object_name']/row[1]/cell[1]" />
	<xsl:text>&apos;,new </xsl:text>
	<xsl:value-of select="/workbook/sheet[@name='object_name']/row[1]/cell[1]" />
	<xsl:text>);
	</xsl:text>
</xsl:template>

<xsl:template match="sheet[@name='config']">
	<xsl:for-each select="row">
		<xsl:value-of select="cell[1]" /><xsl:text>:</xsl:text>
		<xsl:if test="cell[2]/@type='string'">
			<xsl:text>&apos;</xsl:text>
			<xsl:value-of select="cell[2]" />
			<xsl:text>&apos;,</xsl:text>
		</xsl:if>
		<xsl:if test="cell[2]/@type='integer'">
			<xsl:value-of select="cell[2]" />
			<xsl:text>,</xsl:text>
		</xsl:if>
	</xsl:for-each>
	<xsl:text>
	constructor: function()
	{
		this.base();
	},
	IMName: function()
	{
		return this.name;
	},
	GetLanguage: function()
	{
		return this.language;
	},
	GetClass: function()
	{
		return this;
	},
	</xsl:text>
</xsl:template>

<xsl:template match="sheet[@name='char_map']">
	<xsl:text>char_map: {</xsl:text>
	<xsl:for-each select="row">
		<xsl:value-of select="cell[1]" /><xsl:text>:</xsl:text>
		<xsl:text>&apos;</xsl:text>
		<xsl:value-of select="cell[2]" />
		<xsl:text>&apos;</xsl:text>
		<xsl:if test="position() != last()">,</xsl:if>
	</xsl:for-each>
	<xsl:text>},</xsl:text>
</xsl:template>

<xsl:template match="sheet[@name='table']">
	<xsl:text>table: {
	</xsl:text>
	<xsl:for-each select="row">
		<xsl:text>&apos;</xsl:text><xsl:value-of select="cell[1]" /><xsl:text>&apos;: [</xsl:text>
		<xsl:variable name="length" select="count(cell[@value != '']) "/>
		<xsl:for-each select="cell">
			<xsl:if test="./text() != '' and ./text() != ../cell[1]/text()">
				<xsl:text>&apos;</xsl:text>
				<xsl:value-of select="." />
				<xsl:text>&apos;</xsl:text>
				<xsl:if test="position() != $length"><xsl:text>,</xsl:text></xsl:if>
			</xsl:if>
		</xsl:for-each>
		<xsl:text>]</xsl:text>
	<xsl:if test="position() != last()">,</xsl:if>
	<xsl:text>
	</xsl:text>
	</xsl:for-each>
	<xsl:text>}</xsl:text>
</xsl:template>

<xsl:template match="sheet">
</xsl:template>
</xsl:stylesheet>
